package cn.iocoder.yudao.module.course.controller.admin.material.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;

@Schema(description = "管理后台 - 知识库-素材新增/修改 Request VO")
@Data
public class MaterialSaveReqVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "28655")
    private Long id;

    @Schema(description = "素材名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    @NotEmpty(message = "素材名称不能为空")
    private String name;

    @Schema(description = "素材类型 0 文件夹，1 ppt，2 视频，3 音频，4 图片，5 word， 6 excel， 7 txt， 8 pdf", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "素材类型 0 文件夹，1 ppt，2 视频，3 音频，4 图片，5 word， 6 excel， 7 txt， 8 pdf不能为空")
    private Integer materialType;

    @Schema(description = "部素材挂载位置 0 跟节点，非0位某个文件夹id", example = "16018")
    private Long parentId;

    @Schema(description = "素材大小，单位字节")
    private Long size;

    @Schema(description = "素材存储地址", example = "https://www.iocoder.cn")
    private String materialUrl;

    @Schema(description = "视频、音频、文档文件加工后存储地址", example = "https://www.iocoder.cn")
    private String viewUrl;
    private String coverImage;

    @Schema(description = "加工状态 0 无需加工 1 加工中 2加工完成 4 加工失败", example = "2")
    private Integer workStatus;

    @Schema(description = "加工失败信息，多于2048的只保留前面的部分")
    private String workErrorInfo;

    @Schema(description = "行锁版本号")
    private Integer version;

    @Schema(description = "组归属部门（当前新增用户所在的部门）", example = "21467")
    private Long deptId;

    @Schema(description = "描述", example = "随便")
    private String description;

    @Schema(description = "视频/音频 时长")
    private Integer videoDuration;

    private Long categoryId;

}